import store from '@/store'

function checkPermission(el, binding) {
  const { value } = binding
  const roles = store.getters && store.getters.roles // 用户列表
  const permissions = store.getters && store.getters.permission // 权限列表
  // console.log(value); //自定义内容
  // 判断穿来的是否为数组
  if (value && value instanceof Array) {
    // 判断有没有值
    if (value.length > 0) {
      const permissionRoles = value
      // 判断是否ROLE_ 包含传过来 的角色
      const hasRole = roles.some(role => {
        // console.log(role, 'role');
        return permissionRoles.includes('ROLE_' + role.roleCode)
      })
      console.log(hasRole);
      // 权限 判断是否包含传过来的东西
      const hasPermission = permissions.some(item => {
        return permissionRoles.includes(item)
      })
      // 如果两个都没有的话 就把当前节点删除
      if (!hasRole && !hasPermission) {
        el.parentNode && el.parentNode.removeChild(el)
      }


    }
  } else {
    throw new Error(`need roles! Like v-permission="['admin','editor']"`)
  }
}

export default {
  inserted(el, binding) {
    checkPermission(el, binding)
  },
  update(el, binding) {
    checkPermission(el, binding)
  }
}
